經過 Week 1 的工具箱基礎建設,本週進入核心功能直播即時翻譯。
Audio Capture(語音擷取)
Chunking(音訊分塊)
Whisper API(語音轉文字 STT)
LLM Prompting(大語言模型提示)
UI Streaming(前端流式渲染)


在 lib/features/live_translate/ 下建立以下架構:
lib/features/live_translate/
├── data/
│ ├── models/ # 逐字稿與翻譯 Response Model
│ └── services/ # Whisper & LLM API 串接服務
├── presentation/
│ ├── pages/ # 即時字幕牆 UI
│ └── widgets/ # 字幕卡片、狀態指示燈
└── live_translate_page.dart
AI 開發最忌諱將 API Key在程式碼中提交至Git
安裝套件:
flutter pub add flutter_dotenv
建立 .env 檔案(在專案根目錄):
OPENAI_API_KEY=your_openai_api_key_here
GEMINI_API_KEY=your_gemini_api_key_here
在 .gitignore 加入 .env:
.env
在 pubspec.yaml 載入 .env 資源:
flutter:
assets:
- .env
在 main.dart 初始化 dotenv:
import 'package:flutter_dotenv/flutter_dotenv.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await dotenv.load(fileName: ".env"); //載入環境變數
// ...其餘初始化邏輯...
}
.env 建立完成且成功加入 .gitignore 避免 Key 外洩。dotenv.load() 無報錯。